Data assistance application for mobile devices

ABSTRACT

A data assist application allows people to share structured data, and update and/or collaborate in real time. Companies can use embodiments of the invention to send and/or receive structured data. Embodiments of the data assist application work standalone or while a user is talking to a person or a company. In use, information is spread when people share data with non-users. The data are preferably owned and/or controlled by the user and stored on user devices. Further embodiments of the invention integrate with OS-supplied data and third party apps.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/888,598, filed May 7, 2013, which claims priority to U.S. provisionalpatent application Ser. No. 61/644,357, filed May 8, 2012, each of whichapplications are incorporated herein in their entirety by this referencethereto.

BACKGROUND OF THE INVENTION

1. Technical Field

The invention relates to mobile devices. More particularly, theinvention relates to a data assistance application for mobile devices.

2. Description of the Background Art

Mobile devices have become ubiquitous and indispensable in today'sworld. However, user interaction with such devices is often less thanseamless.

Current approaches to entering data into mobile devices include the usertouching, typing, or speaking the data. Touching or typing the datarequires the user to keep their eyes and hands on the screen, which maybe inconvenient in certain situations, such as driving or walking.Speaking the data can be insecure because others may hear what isspoken, and it can be error prone due to speech recognition limitations,especially in noisy environments.

When data is entered during a call, it is usually not retained beyondthat call. If the user calls again with the same or a similar intent,the same data must usually be re-entered. Some sophisticated mobileapplications may retain entered data beyond a single interaction, butthat data is typically only available to the company that asked for thedata. If the user engages with another company with a similar intent,the same data usually must be re-entered.

Consider the following transcripts of actual user feedback that wascollected in connection with various day-to-day applications of suchdevices:

-   -   I frequently take the same flights, sometimes 2×/month. It would        be nice if I could edit existing trips and just update the        dates. Instead I have to recreate new trips and be sure to        delete my existing trip or else when adding flights I may add to        an older trip! The only way around this is to name my trips        uniquely even tho its the same trip but a different instance.    -   If you could somehow send me airport check-in counter numbers,        departure & arrival gate numbers & also baggage carousel numbers        it would be great. In this age of information I like to be on        top of things.    -   Here is why I don't like it. 1. Trips are not segmented. 2.        Trips are not stored on my phone off line. (They might but not        in the time frame I expected them to) 3. I have to give them the        trip ID so they can add it. 4. It is not free. Every time you        try and use a function, it is an up sell.    -   User info such as name, address, phone number are not saved. I        had to type the same info over an over for next reservations.    -   To check flight status, you need to enter both cities and flight        number—not user friendly

Clearly, a lot remains to be done to realize the full potential ofmobile devices.

SUMMARY OF THE INVENTION

An embodiment of the invention provides a data assist application thatallows people to share structured data, and update and/or collaborate inreal time. Companies can use embodiments of the invention to send and/orreceive structured data. Embodiments of the data assist application workstandalone or while the user is talking to a person or a company. Inuse, information is spread when people share data with non-users. Thedata are preferably owned and/or controlled by the user and stored onuser devices. Further embodiments of the invention integrate withOS-supplied data and third party apps.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block schematic diagram that shows the individual elementsof a system which facilitates a novel form of interaction between aconsumer and an enterprise system according to the invention;

FIG. 2 is a block schematic diagram that shows elements of a system thatfacilitates sharing of structured data between two individual operatorsof mobile communication devices according to the invention;

FIG. 3 is a block schematic diagram that shows detailed elements of anindividual mobile communication device that has been modified to supportnovel structured data sharing techniques according to the invention;

FIG. 4 is a block schematic diagram that shows a voice applicationsystem that may automatically receive, initiate, and process voice callsusing speech recognition, text-to-speech, and audio processingtechnology according to the invention;

FIG. 5 is a block schematic diagram that shows a customer interactionsystem that can communicate with customers directly using the externalcommunication facility, such as through a Web page, as well as withexternal software applications that perform automated data exchangefunctions according to the invention;

FIG. 6 is a block schematic diagram that shows a data coordinationservice according to the invention;

FIGS. 7-11 are flow diagrams that show various processes for executingand managing the sharing of discrete data items between people andenterprises according to the invention, in which:

FIG. 7 shows a process for data sharing during a voice call;

FIG. 8 shows a process for data sharing independent of a voice call;

FIG. 9 shows a process for determination of a party to share with;

FIG. 10 shows a process for transmitting a first data item to the otherparty; and

FIG. 11 shows a process for identifying a discrete data item to share;and

FIG. 12 is a block schematic diagram that depicts a machine in theexemplary form of a computer system within which a set of instructionsfor causing the machine to perform any of the herein disclosedmethodologies may be executed.

DETAILED DESCRIPTION OF THE INVENTION

An embodiment of the invention provides a data assist application thatallows people to share structured data, and update and/or collaborate inreal time.

Structured data, as used in this document, consists of informationorganized and represented consistent with the following qualities:

-   -   1. Structured data contains one or more unstructured data items,        for example numbers, alphanumeric strings, visual images,        recorded audio, and/or encryption keys.    -   2. Each unstructured data item has a known meaning. Examples of        meanings include latitude, associated with a raw number; first        name, associated with an alphanumeric string; frequent flyer        number, associated with an alphanumeric string; and avatar,        associated with an image.    -   3. Structured data may be categorized as being associated with a        type, but this is optional. A given type may guarantee that        certain specific patterns of unstructured data items are        present, or that some may be optionally present. For example, a        geolocation type may require that latitude and longitude values        be present. In this case, the latitude and longitude values        could be represented as unstructured raw numeric strings.    -   4. A system that uses structured data may allow for the storage        of metadata used consistently for all structured data, such as        content owner, creation time, and update time; which users are        allowed to view all or parts of the structure data; which users        are allowed to change all or parts of the structured data; which        users should receive updates when there are changes to all or        parts of the data; and which entity originated the data, such as        when a business emits data that is owned by a customer.    -   5. Structured data may be organized such that individual        structured data instances can contain one or more other        structured data instances. For example, if the system allows for        a geolocation type of structured data, an event type can contain        an event location represented as an instance of a geolocation        type, as well as other data, such as time of event and/or        duration.

Companies can use embodiments of the invention to send and/or receivestructured data. Embodiments of the data assist application workstandalone or while the user is talking to a person or a company. Inuse, information is spread when people share data with non-users. Thedata are preferably owned and/or controlled by the user and stored onuser devices. Further embodiments of the invention integrate withOS-supplied data and third party apps. The data assist applicationvastly improves the user's multi-modal experience when data is stored onthe client because, for example, users have control.

Pre-Loading of Information onto Consumer Devices

An embodiment of the invention provides a strategy for mobile deviceinformation population, for example as a native mobile app for iOS,Android, and/or any other platforms that allows people to sharestructured data and collaborate in real time; integrates with the mobiledevice user's calendar, contacts, photos, GPS location, etc.;demonstrates to users how a company sends and receives structured data;is optimized to work best while talking to a person or a company; isdesigned for viral and/or social growth to provide a broad base ofmultimodal-ready devices; and empowers users to control storage andsharing of their data completely across user devices.

DESCRIPTION

An embodiment of the invention provides a data assist application thatis usable during a regular voice call, although in other embodiments ofthe invention the data assist application may be used completely outsideof a voice call. In some embodiments, the application can replace ortightly integrate with a regular voice call application, while otherembodiments may require that the user manually switch to the applicationduring a call. In still other embodiments, it is possible to send a pushnotification to trigger the application to launch. In still otherembodiments, it is possible to launch the application automatically whenboth parties in the call support this feature. In still otherembodiments, it is possible to launch the application when the remoteside of a session requests a specific piece of information, or requeststo display a piece of information.

Several communication states are possible in various embodiments of theinvention, including for example a voice call between two people, whereeach person has the application; a voice call between two people, whereone person has application and the other person does not; and a voicecall from a person to an application-supported IVR.

An embodiment of the data assist application manages local storage ofinformation on the user's wireless device. This allows direct storage ofdiscrete pieces of information, such as phone numbers and addresses. Thelocal storage can represent externally stored information, such asGPS-derived location, clipboard content, camera, pictures, notes, andthird party apps. Such local control also manages access permissions forspecific remote parties, e.g. IVR apps or phone-based contacts. Suchinformation may be structured by and/or associated with a specificremote party, such as a flight itinerary from a particular airline, aconfirmation code, and/or an account number. Thus, the user can managepermissions for exchanging pieces of information with remote party, e.g.always allow new itineraries from XYX Airlines and always send whencalling. In an embodiment of the invention data types/structure cancomprise, for example, URL, phone number, itinerary, latitude and/orlongitude, and event. The invention also allows synchronization oflocally stored data with server-based storage and/or storage of datarelated to rendering, such as an airline logo, layout, etc.

Embodiments of the invention include security mechanisms, such asencrypting some items, key management, requiring a password for certainpieces of data, e.g. a PIN.

Embodiments of the invention also include a processing chain mechanism,e.g. receive a flight itinerary from an airline and place the overallflight on the user's calendar, including check-in time. Embodimentsinclude display rendering flexibility, e.g. show nearby store locationson a map, show a friend's location on the map, or show flight options ina table.

Embodiments of the invention also include control of longevity of datathat is received from remote party. For example, pushing location datato a friend expires after 15 minutes, while an itinerary from an airlinemay survive indefinitely.

Embodiments of the invention also include sharing of documents thatupdate and are that are pointed to by a URL, such as SharePoint or dropbox.

Embodiments of the invention concern remotely sourced information. Someinformation can be remotely sourced, such as flight status, friend'slocation, etc. Remotely sourced information can have expiration rulesthat are owned by the remote side. After remotely sourced informationexpires, it is removed from the local side and, if needed, unsubscribedfrom the remote side. Examples of expiration rules include, theinformation never expires, the information expires at specific time, theinformation expires when the remote side decides to expire it, theinformation expires when the remote user decides to unsubscribe and/orremove the information. The remotely sourced data can be updated, forexample, by manual refresh, push notification from the remote side whenthe data changes, and/or manual push from the remote side. In somecases, remotely sourced data may never be changeable or able to expire.

User Interface During a Call

The remote side can request a piece of data. For example, an IVR canrequest a mailing address. In response thereto, the UI of theapplication can display the message “XYZ shoes would like your mailingaddress <Send Mailing Address>” and, upon activation, the applicationwould send the user's previously stored mailing address.

The user can decide to share some information always (“<Always share mylocation with GrubHub>”).

The user can allow the remote IVR to store data (“Always allow United tostore and access confirmation codes, itineraries, loyalty number,etc.”).

The user can push specific piece of information. For example, whentalking to a friend, the user can send the itinerary of upcoming trip,GPS location, contact information of a mutual friend, bookmarked URL,etc.

The user can request a piece of data (“Where are you?” “What's Mikes'number?”).

Voice recognition can be activated during a call to anticipate what tosend and/or request. For example, the application can listen for “whereare you?” during regular person-to-person conversation and, whendetected, prompt the remote side to send the location. An alternateinterface could force an explicit UI action, e.g. press the “command”button or say special phrase, before activating voice recognition.

Free-Form SMS/Chat-Like Text Conversations

In this embodiment, the UI shows if other side has the application ornot. When there is a voice call between two people, one without theapplication, one with the application, the application can use SMS tosend data and/or links to download the application from an onlinemarket, or a URL for the application. The application can also push somedata using SMS, provide Web-based access for a subset of functionality,or access from a desktop or a mobile device.

In the situation where the user is without the application but an IVRsystem supports the application, the IVR system can offer to push a URLto the user to download the application, or the IVR system can offer topush a URL for a Web-based app that supports a subset of theapplication.

Web Chat Integration

Chat integration is possible directly with the application. The userstarts chatting within the application and escalates to a voice callwhen needed. If data is synced to a server as above, the user should beable to log in using a Web-based chat to supply context data, e.g. sendaddress information, etc. In further embodiments of the invention,additional methods to associate Web access channels include matching anaccount number, if the Web site allows a login then providing a login inthe mobile app, and using a Web-based interface that was already neededin accordance with one of the above modes of communication.

Communication Between Data Assist Application and Third PartyApplications

Third-party applications can be a branded application that is ownedand/or maintained by a separate entity. The third-party application canexpose data that can be used during a call, such as the user's accountnumber; and the third-party application can receive data obtained duringthe call.

UI Integration-Like Widgets

Embodiments of the invention include usage data aggregation, e.g. howmany users call the IVR from the application, etc.; app promotion, e.g.during a call the IVR system pushes a link to a download applicationfrom the market; generic third-party applications, e.g. a restaurantoperator application can push a menu, accept menu selections, and/oraccept a user's address, wherein such application is developed by athird party and usable by any restaurant operator, similar to DropBoxSDK usage. The foregoing embodiments would require user confirmation forapplication integration, access to non-application data, etc. that issimilar or identical to IVR access control.

Computer Telephony Integration (CTI)

A CTI-like application shows conversation and/or data exchange details.Information about the person and/or person's applications is usableduring agent calls, for example using the same Web-based applicationthat is usable by people. For example, if an agent requests a deliveryaddress, the caller sees that the agent is requesting the caller'saddress and presses to send an already entered address to the agentconcurrently with the agent saying, e.g. “I've requested your address,please press the send address button now.”

Other Embodiments

In other embodiments of the invention, if there is a queue a remote IVRsystem can call back when idle, or otherwise interact with theapplication, e.g. the application can show the estimated callback time,updated in real time.

Further, the application can be used to optimize actions, such as makinga purchase; the application can provide improved ability for outboundnotifications, e.g. the application can send flight change notificationswith more reliability than SMS, confirm that the user acknowledgedseeing the notification, allow user opt-in and/or opt-out, etc.; theapplication can improve conversation continuity, e.g. after the user'shangs up, the user can see history of what data was exchanged.

Embodiments of the invention can also be used for multi-partynegotiation, e.g. Alice asks Bob for Chris's phone number which is inBob's contact list; the system knows that Chris's phone number in Bob'scontact list belongs to Chris, so when Bob attempts to send it to Alice,the system asks Chris for approval before sending.

Use of VOIP to Replace Voice Channel Entirely

Embodiments of the invention can be used for integration with desktopIM.

Other embodiments of the invention relate to call-back usage. Forexample, if it is desired to give customers the ability to talk to anagent on demand without queues or the use of an IVR system, then theuser can push a “Talk to agent” button and an agent would then call thecustomer when they agent is free to do so. The agent initiates the oneand only call. A similar mechanism is applied to coordinate talksbetween two busy people, where each could change status between busyand/or free and, when both free, a call is triggered.

Further embodiments of the invention concern crawl contacts that keeptrack of who has the application and who does not, where incentivescould be provided to users of the application for getting other peopleto adopt it.

Data Structure Examples by Vertical

The following discussion provides examples of the data structures thatmay be used in a presently preferred embodiment of the invention forvarious market segments.

Retail/Tech

These data structures can include, for example, product identification,e.g. scan by bar/QR code; nearby store locations, e.g. that have certainproduct in stock; alert on product availability; purchasing data; orderID for order status; shipping address for order; RMA number; demographicdata for product troubleshooting; gift card ID; and issue tracking, e.g.issue ID, status, disposition, activity.

Financial

These data structures can include, for example, card data and new policypayment data; payment due dates; account data for statement information;current interest rate data and insurance policy number; rewards programID; rewards program balance; and credit check data.

Travel/Entertainment

These data structures can include, for example, rewards program ID;rewards program balance; itinerary; confirmation code; flight status;car rental date and/or time; hotel date/time and check-in and/orcheck-out times; and roadside service data, e.g. location and rentalconfirmation code.

Communication

These data structures can include, for example, minutes usage; creditcheck data; payment data, which may include payment for the applicationon the phone when the phone is sold, or which may include theapplication without extra charges; bill estimation results; phoneupgrade via scan UPC/QR code; account ID; and issue tracking, e.g. issueID, status, disposition, and activity.

Use Cases

The use cases below show sample consumer-enterprise interactions thatinvolve the data assist application. In each case, the user allows thedata assist application to function in a highly optimal fashion.

Flight Status

-   -   1. (Check #1) Call airline.    -   2. Navigate to Flight Status IVR menu.    -   3. Caller speaks the confirmation code.    -   4. Data Assist App receives entered confirmation code from the        airline and stores it.    -   5. Data Assist App receives flight status, stores it, and        displays it onscreen.    -   6. IVR speaks flight status, noting it is also onscreen, and the        status data is sent to the Data Assist App.    -   7. Caller hangs up.    -   8. (Check #2) Caller opens Data Assist App. The flight status is        visible. Because of integration between the Data Assist App, the        IVR, and the airline Web services, the Flight Status is up to        date already. Because the flight status was recently accessed,        it is displayed by default in the Data Assist App.    -   9. (Check #3) Caller Opens the Data Assist App. The latest        flight status is visible.    -   10. Later, the flight occurs and time elapses. Somewhere, a        server pushes an expiration message to the Data Assist App,        causing the flight status information to be removed because it        is obsolete.

Flight Reservation & Modification

-   -   1. Caller calls IVR flight reservation numbers.    -   2 IVR and Data Assist App present coordinated interface for        selecting specific itinerary to purchase. During the process,        they use the GPS-determined location of caller, in addition to        home address data and prior reservation history, to propose        airports.    -   3. Caller selects a specific itinerary to purchase.    -   4. Caller is transferred to agent.    -   5. Agent is presented with a Web UI that causes them to be aware        that caller is using Data Assist App and already has stored        credit card purchase data. Agent uses UI to request card data.        This causes the Data Assist App to be aware that the remote side        wants to receive card data and displays a large UI element with        the text “Send Card Data.”    -   6 Agent asks the caller if they would like to use the on-file        credit card, to press “Send Card Data.”    -   7. Caller presses “Send Card Data” to send, and some form of        authentication and/or confirmation occurs in the Data Assist        App.    -   8 Agent uses Web UI to determine caller has not entered a        rewards number and asks the caller for it.    -   9. Caller takes rewards number out of their wallet and reads        reward number, while agent types it in for reservation, and uses        Web UI to push it to the caller's Data Assist App. Ideally, the        agent is using software that already integrates with the Data        Assist Web UI and this is an automatic step.    -   10. Caller receives rewards number on Data Assist App, and sees        that it had been typed in incorrectly. Caller communicates to        Agent that it is wrong, makes a correction in the UI of the Data        Assist App, and sends it to agent. Also, the rewards number is        permanently stored on Data Assist App.    -   11. Agent receives corrected rewards number and uses it.    -   12. Agent processes the credit card transaction and purchases        the flight.    -   13. Agent uses Web UI to determine that caller already has an        email address on file and uses Web UI to request it.    -   14. Agent asks caller to send email address if they would like        an emailed receipt.    -   15. Caller presses “Send Email Address” to send email address.    -   16. Agent causes full confirmed itinerary to be pushed to Data        Assist App and informs caller of this, along with confirmation        code and any other needed details.    -   17. Data Assist App receives the itinerary, and stores it.        Additionally, because the itinerary includes events in time, and        locations, it communicates with the Calendar app of the mobile        device to create calendar events for all flights, including        check-in time, and links to check in and for flight status, as        well as links to bring up the respective airports on a map for        easy driving direction.    -   18. Caller hangs up.    -   19. Later, caller desires to change the flight.    -   20. Caller views purchased itinerary in Data Assist App.    -   21 Caller presses “Call about this itinerary” button.    -   22. Data Assist App causes phone to dial airline, while        communicating to IVR details concerning the itinerary for which        the airline is being called.    -   23. IVR answers, greets caller by name, and asks them what they        want to change about this itinerary.    -   24. Caller indicates they want to change the departure date.    -   25. Caller chooses a new date and/or time using integrated voice        and/or app experience, possibly including the OS calendar        integration to choose free time.    -   26. IVR informs caller the change requires additional payment        and transfers caller to agent.    -   27. Agent uses Web UI to request credit card as above.    -   28. Caller sends credit card data.    -   29. Agent purchases change.    -   30. The updated itinerary is pushed to the Data Assist App,        which also communicates with the calendar app to change the        calendar event details.    -   31. Caller hangs up.

Temporary Location Sharing

-   -   1 Caller Alice makes a voice call to Bob using regular phone        dialing techniques.    -   2 Alice and Bob decide they want to meet up at the same physical        location. They are walking toward each other.    -   3. Alice uses the Data Assist App to initiate mutual location        sharing for an hour, by clicking the “Share Location” button,        then choosing “With Bob” button, because the Data Assist App        knows that she is talking towards Bob who has this app, and        clicks the “mutual” check box, and the “for an hour” option.    -   4. Bob sees a notification that Alice wants to share locations        mutually for an hour, and clicks the “Accept” button.

Group Travel Planning and Sharing

-   -   1. Caller Alice is organizing a trip to Vegas with friends to        celebrate her husband John's birthday. She uses the application        to call the airline, construct a proposed itinerary, and save it        to her data storage under “2012 Vegas Trip.”    -   2. Alice uses app to create a group by selecting them from her        phone's contacts and naming the list “Vegas Folks” and making it        a shared list, meaning that all members of the list get notified        they are on the list and can freely use it (but not change it).    -   3. Alice shares her “John's Birthday” calendar item and the        “2012 Vegas Trip” itinerary with “Vegas Folks” and asks for        their comments.    -   4. Bob, a member of “Vegas Folks”, comments that he'd like to        arrive a day later and stay an extra day. Discussion ensues over        IM and calls.    -   5. Alice launches a new airline interaction by returning to        “2012 Vegas Trip” and, clicking on Modify, launches a multimodal        interaction continues to select different flights. All members        of the group get notified of the updated itinerary.    -   6. Everyone agrees. Alice books a restaurant reservation and        shares that to the group, as well as a calendar item, and tells        everyone to purchase.    -   7. Each member of the team click's on “Purchase” next to “2012        Vegas Trip” and gets the current fare. They share name,        birthdate, and credit card information with the airline, type in        the CCV of the and book the itinerary for themselves.

Detailed Discussion of a Presently Preferred Embodiment

FIG. 1 is a block schematic diagram that shows the individual elementsof a system which facilitates a novel form of interaction between aconsumer and an enterprise system according to the invention. In FIG. 1,a device 101 represents mobile communication devices, such assmart-phones, which are capable of initiating, sending, and receivingphone calls, as well as other forms of data. Both of these acts occur bya chosen method of transmission, such as radio signal broadcast from thedevice to a tower or station. Once the data has been transmitted to theintermediary, it is then ready to be communicated either by telephony ordata communication means.

The data communication interface 104 represents a facility thatcommunicates data, such as the Internet or a local intranet. Thisprovides the facility for moving data that was transmitted by the mobilecommunication device to its destination: either a sharing coordinationservice or enterprise-based agent telephony systems.

The telephony communication interface 105 represents a facility forcommunicating voice signal, such as PSTN, LTE, GSM, or CDMA. Thisprovides the facility for moving voice signals that were transmitted bythe mobile communication device to its destination, such as a sharingcoordination service, a voice application system, or an enterprise-basedagent telephony system. The voice signal may also be communicated overinterface 104 by VOIP or similar technologies.

The sharing coordination service 103 represents a service that isaccessible by both telephony and data communication facilities, thoughthe telephony communication is strictly optional. In embodiments of theinvention, the sharing coordination service can be any of a centralizedsystem and a decentralized, peer-to-peer system.

The data communication facilities communicate with this service to sendand receive structured data, while the telephony communicationfacilities are used to transmit data, such using SMS or outbound calls.This service also provides a centralized point for determining useraccount and subscription data, as well as a registry for the differentforms of structured data that might be transmitted.

The voice application systems 106 represent an enterprise-based voiceapplication system that accepts inbound calls and performs automatedroutines and services based on the nature of the call. These systemstypically involve a front end which allows calls to be processed and abackend which is used to store and retrieve data pertinent to theenterprise. Optionally, aggregated data can then be retransmitted to anagent telephony system by the data communications interface 104 and thetelephony communications interface 105.

The agent telephony systems 107 represents an enterprise-based agenttelephony system which comprises live agents who handle incoming andoutgoing calls, supplemented by structured data provided by a sharingcoordination service 103. The system can then transmit data by using thedata communications interface 104 and the telephony communicationsinterface 105.

The data-centric customer interaction system 108 represents adata-centric customer interaction system which communicates by the datacommunications facility 104. Each of these services comprises hostedapplication environments and a facility for communicating dataexternally. Each of the hosted application environments comprisesservice and customer interface applications, which provide facilitiesfor both programmatically and manually updating, retrieving, andpublishing customer data. Also included in the hosted applicationenvironments are a persistent storage system and an interface foraccessing it, which provides functionality to the customer and serviceinterfaces in a domain-specific manner. The external data communicationfacilities provide an interface for transmitting data to and from thehosted application environment via the data communications facility 104.

FIG. 2 is a block schematic diagram that shows elements of a system thatfacilitates sharing of structured data between two individual operatorsof mobile communication devices 101 a and 101 b according to theinvention. The operators communicate with the sharing coordinationservice 103 using data communication facility 104 to negotiate and sharestructured data.

FIG. 3 is a block schematic diagram that shows detailed elements of anindividual mobile communication device 101 that has been modified tosupport novel structured data sharing techniques according to theinvention. The device includes one or more processors 201, an executionstorage area 203 such as flash memory, onboard storage 213 such as adatabase backed by flash memory, and a user interface 202 which mayinclude several components such as a display, microphone, or speaker.The external data communication facility 210 allows the transmission andreceipt of digital data, such as by cellular radio, digital radio, orwired networked access. The external telephony communication facility209 allows transmission and receipt of voice communications such as bycellular signal or PSTN, and may be encoded as with VOIP to use the datacommunication means 210.

The structured data sharing application 205 uses onboard storage 213 tostore structured data that is accessible to the device user. The storedstructure data may have been obtained from a variety of locations,including having been transmitted from other users using the externaldata communication facility 210. Additionally, the structured datasharing application can use the internal communications mechanism 204 toobtain structured data from, and transmit structured data to, other datarelated applications 207, the system 208, and optionally a contactmanagement application 206. Additionally, the data sharing applicationmay obtain data from onboard devices, such as the location sensor 211,which may be a GPS receiver and the onboard camera 212, and transformthis received data to a uniform structured data representation. Thestructured data may be exposed through the user interface as discretesharable data items that can be shared with other users in a managedway, stored locally, or otherwise acted upon in a uniform manner.

FIG. 4 is a block schematic diagram that shows a voice applicationsystem that may automatically receive, initiate, and process voice callsusing speech recognition, text-to-speech, and audio processingtechnology according to the invention. The system can be configured tocommunicate with the sharing coordination service 103 using the externaldata communication facility 303.

FIG. 5 is a block schematic diagram that shows a customer interactionsystem that can communicate with customers directly using the externalcommunication facility 401, such as through a Web page, as well as withexternal software applications that perform automated data exchangefunctions according to the invention.

FIG. 6 is a block schematic diagram that shows a data coordinationservice according to the invention. The service coordinates the sharingof discrete structured data items between people using mobilecommunication devices and one or more enterprises. The system allowsstructured data items to be shared between people, between people andenterprises, and between enterprises.

The service interface application 504 uses the external datacommunication facility 502, which may be the Internet, to communicatewith mobile communication devices, data-centric customer interactionsystems, voice application systems, and other compatible potentialproducers and consumers of structured data. The service interfaceapplication uses storage 506 to manage user registration data 507, thusallowing external entities to register and manage user accounts. Theservice interface application also manages a data type registry 509which allows the registration and management of globally unique datastructure types that can be used across different devices andapplications. For example, a registered type may specify how to storedata to refer to a geographical point on earth, which may be used toshare both sensed locations of friends, as well as locations of abusiness.

The data routing engine 505 is made aware of changes to structured datain real time, and manages the association of data consumers toproducers, using storage 506. Upon being notified of changes in data,the data routing engine determines which consumers should be made awareof the change, and transmits the change to the respective consumers. Thedata routing engine may employ a push notification facility 503 toinitiate notifications to potential data consumers that new data isavailable.

FIGS. 7-11 are flow diagrams that show various processes for executingand managing the sharing of discrete data items between people andenterprises according to the invention.

In FIG. 7, a process for data sharing during, in which a voice call isat Start (700), the User initiates a phone call (702). A StructuredSharing Application detects that a call was initiated and obtains theother party's phone number (702). The phone displays the user interfaceoption for sharing or requesting data with another party (704). Thesystem determines if the User activates the option to share data (708).

If Yes, Identify information to share (726), Activate sharing data withthe other party (728), and return to Step (706) and continue.

If Step (708) is No, the system determines if the User activates theoption to request data (710). If No, the system passively scans theaudio stream (716).

Has the system detected a voice command to share data (718)? If No, hasthe Call Ended (720)? If Yes, End the session (722). If No, return toStep (706) and continue.

If the User activates the option to request data (710), then identifyinformation to request (712) and request data from the other party(714), return to Step (706), and continue.

Has the system detected a voice command to share data (718)? If yes, hasthe system detected sufficient detail about data to share (724)? If Yes,activate sharing data with the other party (728), and return to Step(706) and continue.

Has the system detected a voice command to share data (718)? If No,identify information to share (726), activate sharing data with theother party (728), and return to Step (706) and continue.

In FIG. 8, a process for data sharing independent of a voice call is atStart (800), the User launches a Structured Sharing Application (802).The phone displays the user interface option for sharing or requestingdata with another party (804). The system determines if the Useractivates the option to share data (806).

If Yes, Identify the other party to share with (820), identify theinformation to share (822), transmit the data to the other party (824),and return to Step (804) and continue.

If Step (806) is No, the system determines if the User activates theoption to request data (808). If No, has the application been exited(816)? If Yes, End the session (818). If No, return to Step (804) andcontinue.

If the User activates the option to request data (808), then identifythe other party to share with (810), identify Information to request(812), request data from the other party (814), return to Step (804),and continue.

In FIG. 9, a process for determination of a party to share with is atstart (900), Obtain a contact list from third party sources, e.g.Contacts application, Social Networking applications, etc., and localsources, if any (902). The system determines which contacts areregistered users of the Structured Data Sharing Application (904). Thesystem obtains a list of recently used contacts, e.g. recent calls,recent SMS, recent email, etc. (906). The system presents the user withan aggregated list of contacts in a way that optimally allows them tochoose a contact to share with (908).

The user selects a contact (910). If the Contact already uses theStructured Data Sharing Application (912), then the process ends (914).If the Contact does not already use the Structured Data SharingApplication (912), then the User is presented with the option to invitechosen contact to install and use the application (916). If the Userwants to send the invitation (918), then the invitation is sent to thechosen contact 920 and the process ends (914); else, the process ends(914).

In FIG. 10, a process for transmitting a first data item to the otherparty is at start (1000), the Sending Party establishes communicationwith the Sharing Coordination Service (1002). The Mobile clienttransmits data about the recipient, expiration data, and data content tothe Sharing Coordination Service (1004). The Sharing CoordinationService analyzes account registration data about the recipient (1006) todetermine if the recipient is able to use the Structured Data SharingApplication (1008).

If Yes, store subscription data, e.g. recipient, sender, owner,expiration criteria, and data identifier (1010) and transmit structureddata to the recipient (1012). The Recipient mobile client receives datafrom the Sharing Coordination Service and alerts the user that the datahas arrived (1014), and the Sharing Coordination Service alerts thesender that the data was successfully transmitted (1016), and Ends thesession (1018).

If Step (1008) is No, should an invitation be sent (1020)? If Yes, sendan invitation to the recipient, e.g. using SMS, email, outbound voicecall, etc. (1022). Then, whether or not an invitation is to be sent, atStep (1020) a determination is made if the invitation Should be sentusing out-of-band means, e.g. SMS, email, outbound voice call, etc.(1024).

If No, the Sharing Coordination Server transmits data to the sendingMobile Client indicating that transmission of data has failed (1026);else, should the system use a data type registry to determine anappropriate representation of the structured data message (1028)? IfYes, then transmit the transformed data representation to the recipient(1030), the Sharing Coordination Service alerts the sender that the datawas transmitted using out-of-band means (1032), and ends the session(1018).

In FIG. 11, a process for identifying a discrete data item to share isat start (1100). The system communicates with third-party applicationsto collect a list of discrete data items that can be shared (1102);communicates with the operating system to collect a list of discretedata items that can be shared (1104); collects a list of internallystored data items that can be shared (1106); and presents the user withdata items that can be shared in a way that optimizes the users' abilityto select data they wish to share (1108). The User chooses which dataitem to share (1110).

If a Data item requires extra authentication to unlock (1122), thesystem shows an interface with which the user may be authenticated(1114). If the user is not authenticated (1116), then this interfacecontinues to be shown; else, or if the Data item does not require extraauthentication to unlock, the system determines if it should showadvanced sharing options (1118).

If Yes, the system Shows the user interface for advanced sharing, e.g.expiration date, update frequency, etc. (1120) and the User selectsadvanced sharing options (1122); then, or if the system determines itshould not show advanced sharing options, the Application saves anidentifier of a selected data item and the sharing settings (1124) andthe process Ends (1126).

Computer Implementation

FIG. 12 is a block schematic diagram that depicts a machine in theexemplary form of a computer system 1600 within which a set ofinstructions for causing the machine to perform any of the hereindisclosed methodologies may be executed. In alternative embodiments, themachine may comprise or include a network router, a network switch, anetwork bridge, personal digital assistant (PDA), a cellular telephone,a Web appliance or any machine capable of executing or transmitting asequence of instructions that specify actions to be taken.

The computer system 1600 includes a processor 1602, a main memory 1604and a static memory 1606, which communicate with each other via a bus1608. The computer system 1600 may further include a display unit 1610,for example, a liquid crystal display (LCD) or a cathode ray tube (CRT).The computer system 1600 also includes an alphanumeric input device1612, for example, a keyboard; a cursor control device 1614, forexample, a mouse; a disk drive unit 1616, a signal generation device1618, for example, a speaker, and a network interface device 1628.

The disk drive unit 1616 includes a machine-readable medium 1624 onwhich is stored a set of executable instructions, i.e. software, 1626embodying any one, or all, of the methodologies described herein below.The software 1626 is also shown to reside, completely or at leastpartially, within the main memory 1604 and/or within the processor 1602.The software 1626 may further be transmitted or received over a network1630 by means of a network interface device 1628.

In contrast to the system 1600 discussed above, a different embodimentuses logic circuitry instead of computer-executed instructions toimplement processing entities. Depending upon the particularrequirements of the application in the areas of speed, expense, toolingcosts, and the like, this logic may be implemented by constructing anapplication-specific integrated circuit (ASIC) having thousands of tinyintegrated transistors. Such an ASIC may be implemented with CMOS(complementary metal oxide semiconductor), TTL (transistor-transistorlogic), VLSI (very large systems integration), or another suitableconstruction. Other alternatives include a digital signal processingchip (DSP), discrete circuitry (such as resistors, capacitors, diodes,inductors, and transistors), field programmable gate array (FPGA),programmable logic array (PLA), programmable logic device (PLD), and thelike.

It is to be understood that embodiments may be used as or to supportsoftware programs or software modules executed upon some form ofprocessing core (such as the CPU of a computer) or otherwise implementedor realized upon or within a machine or computer readable medium. Amachine-readable medium includes any mechanism for storing ortransmitting information in a form readable by a machine, e.g. acomputer. For example, a machine readable medium includes read-onlymemory (ROM); random access memory (RAM); magnetic disk storage media;optical storage media; flash memory devices; electrical, optical,acoustical or other form of propagated signals, for example, carrierwaves, infrared signals, digital signals, etc.; or any other type ofmedia suitable for storing or transmitting information.

Although the invention is described herein with reference to thepreferred embodiment, one skilled in the art will readily appreciatethat other applications may be substituted for those set forth hereinwithout departing from the spirit and scope of the present invention.Accordingly, the invention should only be limited by the Claims includedbelow.

1. A system for sharing structured data and collaborating in real timevia one or more mobile communication devices that are configured forinitiating, sending, and receiving any of phone calls and other forms ofdata by a chosen method of transmission, said system comprising: a datacommunication interface for communicating data to a facility for movingdata that was transmitted by said mobile communication device to itsdestination via any of a sharing coordination service orenterprise-based agent telephony system; and a sharing coordinationservice that is accessible by any of a telephony interface and said datacommunication interface, wherein said data communication interfacecommunicates with said sharing coordination service to send and receivestructured data, said sharing coordination service determining useraccount and subscription data, as well as a registry for different formsof structured data that might be transmitted; a structured data sharingapplication for storing structured data that is accessible to a user ofsaid mobile communication device: wherein said stored structure data isobtained from a plurality of sources, including an external datacommunication facility: wherein the structured data sharing applicationcan be invoked during the voice interaction when both parties in thevoice interaction support structured data sharing, displays on a screenof the communication device a user interface option for sharing orrequesting of a particular structured data with another party.
 2. Thesystem of claim 1, said sharing coordination service comprising any of acentralized system and a decentralized, peer-to-peer system.
 3. Thesystem of claim 1, further comprising: a data-centric user interactionsystem for communicating by said data communications interface with oneor more hosted application environments comprising service and userinterface applications, which provide facilities for bothprogrammatically and manually updating, retrieving, and publishing userdata.
 4. The system of claim 1, further comprising: a telephonycommunication interface for communicating voice signals to a facilityfor moving voice signals that were transmitted by said mobilecommunication device to its destination via any of said sharingcoordination service, a voice application system, or an enterprise-basedagent telephony system; and a voice application system for acceptinginbound calls and for performing automated routines and services basedon the nature of a call.
 5. The system of claim 1, further comprising:an agent telephony system comprising live agents who handle incoming andoutgoing calls, supplemented by structured data provided by said sharingcoordination service.
 6. The system of claim 1, wherein said sharingcoordination service facilities communication among disparate mobilecommunication devices using a data communication facility to negotiateand share structured data.
 7. The system of claim 1, further comprising:a voice application system for automatically receiving, initiating, andprocessing voice calls using any of speech recognition, text-to-speech,and audio processing technology, said voice application systemcommunicating with said sharing coordination service via an externaldata communication facility.
 8. The system of claim 7, said voiceapplication system passively scanning for specific phrases to facilitatea relevant data transmission.
 9. The system of claim 1, furthercomprising: a customer interaction system for communicating with usersdirectly using via any of an external communication facility and one ormore external software applications for performing automated dataexchange functions.
 10. The system of claim 1, wherein said datacoordination service coordinates sharing of discrete structured dataitems between one or more mobile communication devices and one or moreenterprises, wherein structured data items are shared between users,between users and enterprises, and between enterprises.
 11. The systemof claim 1, further comprising: a service interface application forusing an external data communication facility to communicate with one ormore mobile communication devices, data-centric customer interactionsystems, voice application systems, and other producers and consumers ofstructured data.
 12. The system of claim 11, said service interfaceapplication, further comprising: a data type registry for registrationand management of globally unique data structure types for use acrossdifferent devices and applications.
 13. The system of claim 1, furthercomprising: a data routing engine for tracking changes to structureddata in real time, and managing an association of data consumers toproducers, said data routing engine determining, when notified ofchanges in data, which consumers should be made aware of said changes,and transmitting said changes to respective consumers.
 14. In a systemfor sharing structured data and collaborating in real time via one ormore mobile communication devices that are configured for initiating,sending, and receiving phone calls, as well as other forms of data by achosen method of transmission, a mobile communication device comprising:a structured data sharing application for storing structured data thatis accessible to a user of said mobile communication device; whereinsaid stored structure data is obtained from a plurality of sources,including an external data communication facility comprising webservices; said structured data sharing application using an internalcommunications mechanism to obtain structured data from, and transmitstructured data to, one or more data related applications during voiceinteraction; wherein said structured data sharing application alsoobtains data from one or more devices that are onboard said mobilecommunication device; said structured data sharing applicationtransforming said received data to a uniform structured datarepresentation; wherein said structured data is exposed to a userthrough a user interface as discrete sharable data items that can beshared with other users in a managed way, stored locally, or otherwiseacted upon in a uniform manner; wherein said stored structured data isobtained from a plurality of sources, including an external datacommunication facility via a sharing coordination service that isaccessible by said data communication interface, wherein said datacommunication interface communicates with said sharing coordinationservice determining user account and subscription data, as well as aregistry for different forms of structured data that might betransmitted: said structured data sharing application using an internalcommunications mechanism to obtain structured data from, and transmitstructured data to, a plurality of other data related applicationsduring a during voice interaction; wherein the structured data sharingapplication can be invoked during the voice interaction when bothparties in the voice interaction support structured data sharing,displays on a screen of the communication device a user interface optionfor sharing or requesting of a particular structured data with anotherparty.
 15. The mobile communication device of claim 14, wherein saidstructured data sharing application is any of: automatically invokedduring a voice call; integrated with a regular voice call application;manually switched during a voice call; triggered by a push notification;launched automatically when both parties in a call support structureddata sharing; and launched when a remote side of a session requests aspecific piece of information or requests to display a piece ofinformation.
 16. The mobile communication device of claim 14, whereinsaid device is operable for any of: a voice call between two users,where each user's device has a structured data sharing application; avoice call between two users, where one user's device has a structureddata sharing application and the other user's device does not; and avoice call from a user to an IVR that supports a structured data sharingapplication on said user's device.
 17. The mobile communication deviceof claim 14, further comprising: a facility for managing local storageof information on said user's wireless device to allow direct storage ofdiscrete pieces of information, and for managing access permissions forspecific remote parties.
 18. The mobile communication device of claim14, wherein said structured data sharing application operates saiddevice to communicate with a voice application system for automaticallyreceiving, initiating, and processing voice calls using any of speechrecognition, text-to-speech, and audio processing technology, said voiceapplication system communicating with a sharing coordination service viaan external data communication facility.
 19. The mobile communicationdevice of claim 18, said voice application system passively scanning forspecific phrases to facilitate a relevant data transmission.
 20. Themobile communication device of claim 15, wherein said structured datasharing application operates said device to communicate with a chatapplication and escalates to a voice call when needed.
 21. The mobilecommunication device of claim 15, wherein said structured data sharingapplication operates said device to communicate in a multi-partynegotiation.
 22. The mobile communication device of claim 15, whereinsaid structured data sharing application operates said device tocommunicate as a voice browser that accepts out of band data.
 23. Themobile communication device of claim 15, wherein said structured datasharing application operates said device to associate out of band userpairs with phone number pairs.
 24. A computer implemented method forsharing structured data and collaborating in real time via one or moremobile communication devices that are configured for initiating,sending, and receiving phone calls, as well as other forms of data by achosen method of transmission, said method comprising: providing a datacommunication interface for communicating data to a facility for movingdata that was transmitted by said mobile communication device to itsdestination via any of a sharing coordination service orenterprise-based agent telephony system; providing a telephonycommunication interface for communicating voice signals to a facilityfor moving voice signals that were transmitted by said mobilecommunication device to its destination via any of a sharingcoordination service, a voice application system, or an enterprise-basedagent telephony system; providing a sharing coordination service that isaccessible by both said telephony and data communication interfaces,wherein said data communication facility communicates with said sharingcoordination service to send and receive structured data, and whereinsaid telephony communication facility transmits data, said sharingcoordination service providing a centralized point for determining useraccount and subscription data, as well as a registry for different formsof structured data that might be transmitted; providing a voiceapplication system for accepting inbound calls and for performingautomated routines and services based on the nature of a call; providingan agent telephony system comprising live agents who handle incoming andoutgoing calls, supplemented by structured data provided by said sharingcoordination service; providing a data-centric user interaction systemfor communicating by said data communications facility with one or morehosted application environments comprising service and user interfaceapplications, which provide facilities for both programmatically andmanually updating, retrieving, and publishing user data; providing onsaid mobile communication device a structured data sharing applicationfor storing structured data that is accessible to a user of said mobilecommunication device: wherein said stored structured data is obtainedfrom a plurality of sources, including an external data communicationfacility comprising web services: said structured data sharingapplication using an internal communications mechanism to obtainstructured data from, and transmit structured data to, a plurality ofother data related applications during a voice interaction; wherein saidstructured data sharing application also obtains data from devices thatare onboard said mobile communication device; and said structured datasharing application transforming said received data to a uniformstructured data representation; wherein said structured data is exposedto a user through a user interface as discrete sharable data items thatcan be shared with other users in a managed way, stored locally, orotherwise acted upon in a uniform manner wherein the structured datasharing application can be invoked during the voice interaction whenboth parties in the voice interaction support structured data sharing,displays on a screen of the communication device a user interface optionfor sharing or requesting of a particular structured data with anotherparty.